/**
 * 用户验证码相关API服务
 */
import request from './config.js';


/**
 * 账号注册获取验证码 - 邮箱 | 短信
 * @param {Object} data - 注册信息
 * @param {string} data.integer - 1手机号 | 2邮箱
 * @param {string} data.areaCode -手机区号
 * @param {string} data.phone - 手机号
 * @param {string} data.email - 邮箱
 * @returns {Promise} 注册结果
 */
export function getCode(data) {
  return request('/smsRegisterCode', {
    method: 'POST',
    data
  });
}

/**
 * 用户手机忘记密码验证码获取
 * @param {Object} data - 账号信息
 * @param {string} data.areaCode -手机区号
 * @param {string} data.phone - 手机号
 * @returns {Promise} 忘记密码验证码结果
 */
export function getForgetCode(data) {
  return request('/smsForgetCode', {
    method: 'GET',
    params: data
  });
}

/**
 * 用户绑定手机号获取验证码
 * @param {Object} data - 账号信息
 * @param {string} data.areaCode -手机区号
 * @param {string} data.phone - 手机号
 * @returns {Promise} 绑定手机号验证码结果
 */
export function getBindPhoneCode(data) {
  return request('/smsBindCode', {
    method: 'GET',
    params: data
  });
}

/**
 * 用户更换手机号码验证码获取
 * @param {Object} data - 账号信息
 * @param {string} data.areaCode -手机区号
 * @param {string} data.phone - 手机号
 * @returns {Promise} 更换手机号码验证码结果
 */
export function getChangePhoneCode(data) {
  return request('/smsExchangeCode', {
    method: 'GET',
    params: data
  });
}

/**
 * 用户绑定新手机号码获取验证码
 * @param {Object} data - 账号信息
 * @param {string} data.areaCode -手机区号
 * @param {string} data.phone - 手机号
 * @returns {Promise} 绑定新手机号码验证码结果
 */
export function getBindNewPhoneCode(data) {
  return request('/smsRebind', {
    method: 'GET',
    params: data
  });
}

/**
 * 用户手机号注销获取验证码
 * @param {Object} data - 账号信息
 * @param {string} data.areaCode -手机区号
 * @param {string} data.phone - 手机号
 * @returns {Promise} 注销验证码结果
 */
export function getDeleteCode(data) {
  return request('/smsDeleteCode', {
    method: 'GET',
    params: data
  });
}

/**
 * 用户邮箱注销获取验证码
 * @param {Object} data - 账号信息
 * @param {string} data.email - 邮箱
 * @returns {Promise} 注销验证码结果
 */
export function getDeleteEmailCode(data) {
  return request('/emailDeleteCode', {
    method: 'GET',
    params: data
  });
}

/**
 * 用户更换绑定邮箱获取验证码
 * @param {Object} data - 账号信息
 * @param {string} data.email - 邮箱
 * @returns {Promise} 更换绑定邮箱验证码结果
 */
export function getChangeEmailCode(data) {
  return request('/exchangeMailCode', {
    method: 'GET',
    params: data
  });
}
 
/**
 * 用户邮箱忘记密码获取验证码
 * @param {Object} data - 账号信息
 * @param {string} data.email - 邮箱
 * @returns {Promise} 忘记密码验证码结果
 */
export function getForgetEmailCode(data) {
  return request('/emailForgetCode', {
    method: 'GET',
    params: data
  });
}



export default {
  getCode,
  getForgetCode,
  getBindPhoneCode,
  getChangePhoneCode,
  getBindNewPhoneCode,
  getDeleteCode,
  getDeleteEmailCode,
  getChangeEmailCode,
  getForgetEmailCode
};